package com.local.dao.mapers;

import java.util.Date;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.local.model.CarParkIn;
import com.local.model.CarParkInExample;
import com.local.page.CarInAndOutPageInfo;
import com.qianhai.common.dao.face.BaseMapper;

public interface CarParkInMapper extends
		BaseMapper<CarParkInExample, CarParkIn, String>
{
	public CarParkIn queryMaxIn(@Param("carNo") String carNo,
			@Param("exChangeUuid") String exChangeUuid);
	
	/**
	 * 
	 * 方法描述：查询车牌号，最新的一条进场记录
	 * 
	 * @Title: queryMaxInByCarNo
	 * @param @param carNo
	 * @param @return
	 * @return CarParkIn
	 * @user Administrator 2016年1月5日
	 * @throws
	 */
	public CarParkIn queryMaxInByCarNo(@Param("carNo") String carNo);
	
	
	
	public Integer selectCarIn(@Param("carNo") String carNo,
			@Param("openTime") String openTime,
			@Param("recordId") String recordId);
	
	/**
	 * 
	 * 方法描述：查找车辆未出去,仅进场
	 * 
	 * @Title: selectCarNo
	 * @param @param carNo
	 * @param @return
	 * @return CarParkOut
	 * @user zw 2015年9月24日
	 * @throws
	 */
	public CarParkIn selectCarNo(@Param("carNo") String carNo);
	
	/**
	 * 
	 * 方法描述：通过出场车牌，模糊匹配找到相对应的入场车牌纪录(方便匹配)
	 * 
	 * @Title: findByCarNoMatch
	 * @param @param carNo
	 * @param @return
	 * @return List<CarParkIn>
	 * @user Administrator 2015年10月1日
	 * @throws
	 */
	public List<CarParkIn> findByCarNoMatch(String[] carNoLs);
	
	public List<CarParkIn> queryLikeByPage(CarInAndOutPageInfo<CarParkIn> page);
	
	public Integer countAllLikeByPage(CarInAndOutPageInfo<CarParkIn> page);
	
	// 通过岗亭ID，查询所有在场数据
	public List<CarParkIn> queryByStationPage(
			CarInAndOutPageInfo<CarParkIn> page);
	
	public Integer countAllByStationPage(CarInAndOutPageInfo<CarParkIn> page);
	
	// 通过岗亭ID，查询所有待进场数据
	public List<CarParkIn> queryStayCarInStationPage(
			CarInAndOutPageInfo<CarParkIn> page);
	
	public Integer countQueryStayCarInPage(CarInAndOutPageInfo<CarParkIn> page);
	
	/**
	 * 
	 * 方法描述： 查询最新进场纪录(前5条)
	 * 
	 * @Title: queryNewCarIn
	 * @param @return
	 * @return List<CarParkIn>
	 * @user lyf 2015年11月3日
	 * @throws
	 */
	public List<CarParkIn> queryNewCarIn(
			@Param("stationUuid") String stationUuid);
	
	/**
	 * 
	 * 方法描述：查询待进场
	 * 
	 * @Title: queryStayCarIn
	 * @param @return
	 * @return List<CarParkIn>
	 * @user lyf 2015年11月3日
	 * @throws
	 */
	public List<CarParkIn> queryStayCarIn(
			@Param("stationUuid") String stationUuid);
	
	/**
	 * 
	 * 方法描述：查询进场
	 * 
	 * @Title: queryCarParkIn
	 * @param @return
	 * @return List<CarParkIn>
	 * @user Administrator 2016年3月17日
	 * @throws
	 */
	public List<CarParkIn> queryCarParkIn();
	
	public List<CarParkIn> queryInEquipment(
			@Param("equipment") String equipmentId,
			@Param("createTime") Date createTime);
	
	public void deleteCarIn();
}